package com.groupbaby.ydd.controller;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.groupbaby.ydd.common.R;
import com.groupbaby.ydd.common.ResultData;
import com.groupbaby.ydd.dto.TagDto;
import com.groupbaby.ydd.entity.YddTag;
import com.groupbaby.ydd.service.IYddTagService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author author
 * @since 2022-05-22
 */
@Slf4j
@RestController
@RequestMapping("/ydd_tag")
public class YddTagController {

    @Autowired
    private IYddTagService iYddTagService;

    /*GET 标签列表-分页

    GET /ydd_tag/list*/
    @GetMapping("list")
    public ResultData list(String tagname, int page, int limit) {
        log.info("tagname" + tagname, "page" + page, "limit" + limit);

        Page<YddTag> pageInfo = new Page(page, limit);
        LambdaQueryWrapper<YddTag> queryWrapper = new LambdaQueryWrapper<>();
        //模糊查询
        queryWrapper.like(tagname != null,YddTag::getTagname, tagname);

        iYddTagService.page(pageInfo, queryWrapper);

        TagDto tagDto = new TagDto();

        tagDto.setCount(pageInfo.getTotal());//设置总数
        tagDto.setTotalPages(pageInfo.getPages());//设置总页数
        tagDto.setCurrentPage(pageInfo.getCurrent());//设置当前页
        tagDto.setPageSize(pageInfo.getSize());//每页条数
        tagDto.setData(pageInfo.getRecords());//集合


        return ResultData.ok("查询成功", tagDto);
    }


    /*
     * GET 标签列表-全部-*/
    @GetMapping("/all")
    public ResultData all() {
        LambdaQueryWrapper<YddTag> queryWrapper = new LambdaQueryWrapper<>();
        List<YddTag> list = iYddTagService.list(queryWrapper);
        return ResultData.ok("成功", list);
    }

    /*GET 标签删除
    GET /ydd_tag/del
    */
    @GetMapping("/del")
    public ResultData del(@RequestParam String id) {
        log.info("根据id查询要删除的标签信息..."+id);
        YddTag yddTag = iYddTagService.getById(id);
        iYddTagService.removeById(id);
        return ResultData.ok("删除成功", yddTag);
    }

    /*GET 标签详情 GET /ydd_tag/rowInfo*/
    @GetMapping("/rowInfo")
    public ResultData rowInfo(@RequestParam String id) {
        log.info("根据id查询标签信息...");
        YddTag yddTag = iYddTagService.getById(id);
        if (yddTag != null) {
            return ResultData.ok("查询成功", yddTag);
        }
        return ResultData.error("没有查询到对应标签信息");
    }

    /* POST 标签添加 POST /ydd_tag/add*/
  @PostMapping("/add")
    public ResultData add(@RequestBody YddTag yddTag){
      log.info("要添加的标签信息..."+yddTag.toString());

      iYddTagService.save(yddTag);
      return ResultData.ok("添加成功",yddTag);
  }

    /*POST 标签修改  POST /ydd_tag/update*/
    @PostMapping("/update")
    public ResultData update(@RequestBody YddTag yddTag){
        log.info("要修改的标签信息..."+yddTag.toString());

        iYddTagService.updateById(yddTag);
        return ResultData.ok("修改成功",yddTag);
    }
}
